package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.domain.SysStudentRankHistory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 系统-学生段位历史Mapper（仅保留XML映射，删除重复注解）
 */
@Mapper
public interface SysStudentRankHistoryMapper extends BaseMapper<SysStudentRankHistory> {
    /**
     * 自定义方法1：按用户ID+时间范围查询段位历史
     * @param userId 用户ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 历史列表
     */
    List<SysStudentRankHistory> selectRankHistoryByUserIdAndTime(
            @Param("userId") Long userId,
            @Param("startTime") Date startTime,
            @Param("endTime") Date endTime
    );

    /**
     * 自定义方法2：统计用户段位变化次数（仅保留方法定义，删除@Select注解）
     * @param userId 用户ID
     * @return 统计结果：key=changeType(升段/降段)，value=changeCount(次数)
     */
    List<Map<String, Object>> countRankChangeByUserId(@Param("userId") Long userId);
}